---
title: SAIF.Application.Claim.Legal business rules
summary: Enumerated business rules with per-rule trigger, enforcement, and outcomes.
status: draft
owner: SAIF Documentation Generator
last_reviewed: 2026-08-21
library: SAIF.Application.Claim.Legal
reference_type: embedded
---

# SAIF.Application.Claim.Legal business rules

This page captures business rules enforced by this library.

## BR-001 Members of the legal admin AD group bypass all confidential-claim restrictions

| Field | Value |
| --- | --- |
| **Statement** | Members of the legal admin AD group bypass all confidential-claim restrictions. |
| **Trigger** | Retrieve of any legal manager |
| **Enforcement** | LegalManagerBase.OnRetrieve (LegalManagerBase.vb) |
| **Outcome** | Access allowed |
| **Source** | `LegalManagerBase.OnRetrieve (LegalManagerBase.vb)` |

---

## BR-002 A worker-conflict claim

| Field | Value |
| --- | --- |
| **Statement** | A worker-conflict claim may be viewed only with legal conflict access (or admin, or a security override). |
| **Trigger** | Retrieve when ClaimData.IsWorkerConflict |
| **Enforcement** | LegalManagerBase.OnRetrieve |
| **Outcome** | Denied → ERRORCONFIDENTIALCLAIM, CanViewClaim = False |
| **Source** | `LegalManagerBase.OnRetrieve` |

---

## BR-003 An exposure claim

| Field | Value |
| --- | --- |
| **Statement** | An exposure claim may be viewed only with legal exposure access (or admin, or a security override). |
| **Trigger** | Retrieve when ClaimData.IsExposure |
| **Enforcement** | LegalManagerBase.OnRetrieve |
| **Outcome** | Denied → ERRORCONFIDENTIALCLAIM, CanViewClaim = False |
| **Source** | `LegalManagerBase.OnRetrieve` |

---

## BR-004 Case search results

| Field | Value |
| --- | --- |
| **Statement** | Case search results are filtered by the caller's exposure and conflict entitlements. |
| **Trigger** | GetSearchResults |
| **Enforcement** | clsCaseSearchManager.GetSearchResults (LegalNet\clsCaseSearchManager.vb) |
| **Outcome** | ExposureCode = 99 / ConflictAccess = True only when entitled |
| **Source** | `clsCaseSearchManager.GetSearchResults (LegalNet\clsCaseSearchManager.vb)` |

---

## BR-005 The LNCaseUpdate resource is surfaced as a Boolean capability for update workflows

| Field | Value |
| --- | --- |
| **Statement** | The LNCaseUpdate resource is surfaced as a Boolean capability for update workflows. |
| **Trigger** | UI checks whether case-edit actions should be enabled |
| **Enforcement** | LegalManagerBase.IsInCaseUpdateGroup |
| **Outcome** | Presentation code can suppress case-update actions |
| **Source** | `SAIF.Application.Claim.Legal\LegalManagerBase.vb` |

---

## BR-006 The LNView resource is surfaced as a Boolean capability for read-only workflows

| Field | Value |
| --- | --- |
| **Statement** | The LNView resource is surfaced as a Boolean capability for read-only workflows. |
| **Trigger** | UI checks whether the current user should remain view-only |
| **Enforcement** | LegalManagerBase.IsInViewOnly |
| **Outcome** | Presentation code can suppress write actions |
| **Source** | `SAIF.Application.Claim.Legal\LegalManagerBase.vb` |

---

## BR-007 The LNNoteView resource is surfaced as a Boolean capability for case-note visibility

| Field | Value |
| --- | --- |
| **Statement** | The LNNoteView resource is surfaced as a Boolean capability for case-note visibility. |
| **Trigger** | UI checks whether case notes may be shown |
| **Enforcement** | clsCaseNotesManager.IsInNoteView |
| **Outcome** | Presentation code can suppress note visibility |
| **Source** | `SAIF.Application.Claim.Legal\LegalNet\clsCaseNotesManager.vb` |

---

## BR-008 The LNUpdate resource is surfaced as a Boolean capability for bill-note updates

| Field | Value |
| --- | --- |
| **Statement** | The LNUpdate resource is surfaced as a Boolean capability for bill-note updates. |
| **Trigger** | UI checks whether bill-note edits may be shown |
| **Enforcement** | clsCaseNotesManager.CanUpdateBillNotes |
| **Outcome** | Presentation code can suppress bill-note edits |
| **Source** | `SAIF.Application.Claim.Legal\LegalNet\clsCaseNotesManager.vb` |

---

## BR-009 The LNLCEUpdate resource is surfaced as a Boolean capability for LCE edits

| Field | Value |
| --- | --- |
| **Statement** | The LNLCEUpdate resource is surfaced as a Boolean capability for LCE edits. |
| **Trigger** | UI checks whether LCE records may be edited |
| **Enforcement** | clsScheduleManager.IsInLCEUpdateGroup |
| **Outcome** | Presentation code can suppress LCE edits |
| **Source** | `SAIF.Application.Claim.Legal\LegalNet\clsScheduleManager.vb` |

---

## BR-010 The LNDueDateUpdate resource is surfaced as a Boolean capability for LCE due-date edits

| Field | Value |
| --- | --- |
| **Statement** | The LNDueDateUpdate resource is surfaced as a Boolean capability for LCE due-date edits. |
| **Trigger** | UI checks whether LCE due dates may be edited |
| **Enforcement** | clsScheduleManager.IsInLCEDueDateGroup |
| **Outcome** | Presentation code can suppress LCE due-date edits |
| **Source** | `SAIF.Application.Claim.Legal\LegalNet\clsScheduleManager.vb` |

---

## BR-011 Legal case context can be established from a claim number, WCB number, or DCBS number

| Field | Value |
| --- | --- |
| **Statement** | Legal case context can be established from a claim number, WCB number, or DCBS number. |
| **Trigger** | Context change |
| **Enforcement** | LegalManagerBase.OnContextChanged |
| **Outcome** | Case list rebuilt and current case selected |
| **Source** | `LegalManagerBase.OnContextChanged` |

---

## BR-020 Letter requests

| Field | Value |
| --- | --- |
| **Statement** | Letter requests are created through the pk80001_LEGALNET.insertLetterRequest package procedure, never by direct table insert. |
| **Trigger** | Letter generation |
| **Enforcement** | LegalManagerBase.insertLetterRequest |
| **Outcome** | Request number returned to caller |
| **Source** | `LegalManagerBase.insertLetterRequest` |

---

## BR-021 Changes to file location, LCE, case status, and DEF flag on a primary case propagate to all consolidated secondary cases

| Field | Value |
| --- | --- |
| **Statement** | Changes to file location, LCE, case status, and DEF flag on a primary case propagate to all consolidated secondary cases. |
| **Trigger** | Save on a consolidated case |
| **Enforcement** | LegalManagerBase.updateConsolFileLocation / updateConsolLCE / UpdateConsolCaseStatus / UpdateConsolDEFFLag |
| **Outcome** | Secondary cases updated in step |
| **Source** | `LegalManagerBase.updateConsolFileLocation / updateConsolLCE / UpdateConsolCaseStatus / UpdateConsolDEFFLag` |

---

## BR-030 Saving attorney tables persists six child collections in a fixed order within one write

| Field | Value |
| --- | --- |
| **Statement** | Saving attorney tables persists six child collections in a fixed order within one write. |
| **Trigger** | OnWrite |
| **Enforcement** | clsAttorneyTableManager.OnWrite |
| **Outcome** | All collections saved atomically* |
| **Source** | `clsAttorneyTableManager.OnWrite` |

---

## BR-031 Lookup code lists are cached in-process for 8 hours sliding

| Field | Value |
| --- | --- |
| **Statement** | Lookup code lists are cached in-process for 8 hours (sliding) at low priority. |
| **Trigger** | Lookup list first access |
| **Enforcement** | AddToCache helpers in clsAttorneyTableManager / clsHearingLocationManager |
| **Outcome** | Reduced database round-trips |
| **Source** | `AddToCache helpers in clsAttorneyTableManager / clsHearingLocationManager` |

---

## BR-040 A legal person

| Field | Value |
| --- | --- |
| **Statement** | A legal person may be deleted only when CanDeleteLegalPerson allows it. |
| **Trigger** | DeletePerson |
| **Enforcement** | clsLegalPersonManager.DeletePerson |
| **Outcome** | Delete blocked otherwise |
| **Source** | `clsLegalPersonManager.DeletePerson` |

---

## BR-041 After a legal person save, the person collection is discarded to force a fresh reload

| Field | Value |
| --- | --- |
| **Statement** | After a legal person save, the person collection is discarded to force a fresh reload. |
| **Trigger** | OnWrite |
| **Enforcement** | clsLegalPersonManager.OnWrite |
| **Outcome** | Stale data avoided |
| **Source** | `clsLegalPersonManager.OnWrite` |

---

## BR-050 New hearing locations default RequiresFullDayFlag False RotationFlag False CreateDate Today CreateUser DPI UserID

| Field | Value |
| --- | --- |
| **Statement** | New hearing locations default to RequiresFullDayFlag = False and RotationFlag = False, with CreateDate = Today and CreateUser = DPI.UserID. |
| **Trigger** | InsertNewLocation |
| **Enforcement** | clsHearingLocationManager.InsertNewLocation |
| **Outcome** | Defaults applied; location cache invalidated |
| **Source** | `clsHearingLocationManager.InsertNewLocation` |

---

## BR-051 A hearing location

| Field | Value |
| --- | --- |
| **Statement** | A hearing location may be deleted only when CanDeleteLocation allows it. |
| **Trigger** | DeleteLocation |
| **Enforcement** | clsHearingLocationManager.DeleteLocation |
| **Outcome** | Delete blocked otherwise |
| **Source** | `clsHearingLocationManager.DeleteLocation` |

---

## BR-060 Attorney profiles are active only when ExpirationDate has not passed

| Field | Value |
| --- | --- |
| **Statement** | An attorney profile is "active" only when its ExpirationDate has not passed. |
| **Trigger** | GetProfiles |
| **Enforcement** | clsMaintenanceManager.GetProfiles |
| **Outcome** | Active subset returned separately |
| **Source** | `clsMaintenanceManager.GetProfiles` |

---

## BR-070 A new hearing request creates a LOUN file location entry

| Field | Value |
| --- | --- |
| **Statement** | A new hearing request creates a LOUN file location entry. |
| **Trigger** | OnWrite for a new case |
| **Enforcement** | clsRequestManager.OnWrite (LegalNet\clsRequestManager.vb) |
| **Outcome** | File location recorded |
| **Source** | `clsRequestManager.OnWrite (LegalNet\clsRequestManager.vb)` |

---

## BR-071 Hearing-request tasks

| Field | Value |
| --- | --- |
| **Statement** | Hearing-request tasks are due 13 working days (adjuster) and 29 days (text) out, rolled forward to the next work day. |
| **Trigger** | OnWrite |
| **Enforcement** | clsRequestManager.OnWrite (TASKDAYS, TEXTDAYS, NextWorkDay) |
| **Outcome** | Tasks created with computed due dates |
| **Source** | `clsRequestManager.OnWrite (TASKDAYS, TEXTDAYS, NextWorkDay)` |

---

## BR-072 A change of firm or attorney is recorded as a system case note with category RFH and CreateUser SYSTEM

| Field | Value |
| --- | --- |
| **Statement** | A change of firm or attorney is recorded as a system case note with category RFH and CreateUser = "SYSTEM". |
| **Trigger** | Firm/attorney change on save |
| **Enforcement** | clsRequestManager.OnWrite |
| **Outcome** | Audit note written |
| **Source** | `clsRequestManager.OnWrite` |

---

## BR-080 DEF print hold date is the next Friday if today is Friday the following Friday

| Field | Value |
| --- | --- |
| **Statement** | DEF print hold date is the next Friday; if today is Friday, the following Friday. |
| **Trigger** | PrintDEF |
| **Enforcement** | clsScheduleManager.PrintDEF (LegalNet\clsScheduleManager.vb) |
| **Outcome** | Hold date set |
| **Source** | `clsScheduleManager.PrintDEF (LegalNet\clsScheduleManager.vb)` |

---

## BR-081 DEF notification e-mail goes to the attorney manager resolved from the database falling back to ISClaimsAppsSupport at saif.com

| Field | Value |
| --- | --- |
| **Statement** | DEF notification e-mail goes to the attorney manager resolved from the database, falling back to ISClaimsAppsSupport@saif.com. |
| **Trigger** | SendDEFEmail |
| **Enforcement** | clsScheduleManager.SendDEFEmail |
| **Outcome** | Recipient resolved |
| **Source** | `clsScheduleManager.SendDEFEmail` |

---

## BR-082 Outside Production DEF e-mail is redirected to the current user DPI UserID at saif.com

| Field | Value |
| --- | --- |
| **Statement** | Outside Production, DEF e-mail is redirected to the current user (DPI.UserID & "@saif.com"). |
| **Trigger** | SendDEFEmail in non-Prod |
| **Enforcement** | clsScheduleManager.SendDEFEmail |
| **Outcome** | No mail to real recipients in test |
| **Source** | `clsScheduleManager.SendDEFEmail` |

---

## BR-090 Closing a case adds a RECRD file location and sets CaseStatusCode CLOSE

| Field | Value |
| --- | --- |
| **Statement** | Closing a case adds a RECRD file location and sets CaseStatusCode = "CLOSE". |
| **Trigger** | CloseCase |
| **Enforcement** | clsOutcomeManager.CloseCase (LegalNet\clsOutcomeManager.vb) |
| **Outcome** | Case closed |
| **Source** | `clsOutcomeManager.CloseCase (LegalNet\clsOutcomeManager.vb)` |

---

## BR-091 A voc-specific close task CASECLOSEDVOC is created only when the case has voc issues and a VocMailID longer than 5 characters

| Field | Value |
| --- | --- |
| **Statement** | A voc-specific close task (CASECLOSEDVOC) is created only when the case has voc issues and a VocMailID longer than 5 characters. |
| **Trigger** | CloseCase |
| **Enforcement** | clsOutcomeManager.CloseCase |
| **Outcome** | Correct task type created |
| **Source** | `clsOutcomeManager.CloseCase` |

---

## BR-100 Letter batch jobs

| Field | Value |
| --- | --- |
| **Statement** | Letter batch jobs are submitted only after the pending database transaction has been explicitly ended. |
| **Trigger** | OnWrite |
| **Enforcement** | clsCreateFileManager.OnWrite, clsMailDateManager.OnWrite |
| **Outcome** | LGN0002_LEGALNET_LETTERS submitted against committed data |
| **Source** | `clsCreateFileManager.OnWrite, clsMailDateManager.OnWrite` |

---

## BR-110 The attorney assignment batch process runs in test mode in any non-Production environment

| Field | Value |
| --- | --- |
| **Statement** | The attorney assignment batch process runs in test mode in any non-Production environment. |
| **Trigger** | RunAssignmentProcess |
| **Enforcement** | clsAssignmentManager.Testing (LegalNet\clsAssignmentManager.vb) |
| **Outcome** | No production side effects in test |
| **Source** | `clsAssignmentManager.Testing (LegalNet\clsAssignmentManager.vb)` |

---

## BR-120 Only privileged users

| Field | Value |
| --- | --- |
| **Statement** | Only privileged users may delete case notes whose category is not DOCCO. |
| **Trigger** | DeleteNote |
| **Enforcement** | clsCaseNotesManager.DeleteNote (LegalNet\clsCaseNotesManager.vb) |
| **Outcome** | Delete blocked |
| **Source** | `clsCaseNotesManager.DeleteNote (LegalNet\clsCaseNotesManager.vb)` |

---

## BR-121 Notes created by SYSTEM can never be deleted

| Field | Value |
| --- | --- |
| **Statement** | Notes created by SYSTEM can never be deleted. |
| **Trigger** | DeleteNote |
| **Enforcement** | clsCaseNotesManager.DeleteNote |
| **Outcome** | Delete blocked |
| **Source** | `clsCaseNotesManager.DeleteNote` |

---

## BR-130 All legal data access in this library runs as database user LGN

| Field | Value |
| --- | --- |
| **Statement** | All legal data access in this library runs as database user LGN. |
| **Trigger** | Manager construction |
| **Enforcement** | LegalManagerBase.New (DataLayer.DBUser = "LGN") |
| **Outcome** | Consistent Oracle schema/proxy user |
| **Source** | `LegalManagerBase.New (DataLayer.DBUser = "LGN")` |

## Notes
- Additional procedure-internal rules could not be expanded because the Oracle package bodies are not present in this repository.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Security and authorization](security-authorization.md)
- [Configuration](configuration.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [API reference](api/index.md)

## Sources
- SAIF.Application.Claim.Legal\LegalManagerBase.vb
- SAIF.Application.Claim.Legal\clsAttorneyTableManager.vb
- SAIF.Application.Claim.Legal\clsHearingLocationManager.vb
- SAIF.Application.Claim.Legal\clsLegalPersonManager.vb
- SAIF.Application.Claim.Legal\clsMaintenanceManager.vb
- SAIF.Application.Claim.Legal\LegalNet\clsAssignmentManager.vb
- SAIF.Application.Claim.Legal\LegalNet\clsCaseNotesManager.vb
- SAIF.Application.Claim.Legal\LegalNet\clsCaseSearchManager.vb
- SAIF.Application.Claim.Legal\LegalNet\clsCreateFileManager.vb
- SAIF.Application.Claim.Legal\LegalNet\clsMailDateManager.vb
- SAIF.Application.Claim.Legal\LegalNet\clsOutcomeManager.vb
- SAIF.Application.Claim.Legal\LegalNet\clsRequestManager.vb
- SAIF.Application.Claim.Legal\LegalNet\clsScheduleManager.vb
